//package com.ssm.server.util;
//
//import java.util.concurrent.ConcurrentLinkedQueue;
//
//import javax.servlet.ServletContext;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpSession;
//
//import com.ssm.server.user.model.User;
//
//public class WebUtil
//{
//	public static final String AGENT_TITLE = "clientInfo";
//    public static final String TEST_COUNT_TITLE = "verifyTimes";
//    public static final String TEMP_LOGIN_INFO = "loginEntityTemp";
//    public static final int TEST_MAX = 3;
//    /**
//     * @Title: putUserToSession
//     * @Description: 将当前登录的用户保存到session中去
//     * @param @param request
//     * @param @param weChatUser
//     * @return void 返回类型
//     * @throws
//     */
//    public static void putUserToSession ( HttpServletRequest request , User weChatUser )
//    {
//        
//        HttpSession session = request.getSession ( true );
//        session.setAttribute ( User.SESSION_USER , weChatUser );
//    }
//    
//    public static void putMobilePhoneToSession ( HttpServletRequest request , String userTel )
//    {
//        
//        HttpSession session = request.getSession ( true );
//        session.setAttribute ( "userTel" , userTel );
//    }
//    
//    public static String getMobilePhoneToSession ( HttpServletRequest request)
//    {
//        
//        HttpSession session = request.getSession ( false );
//        if ( session == null )
//        {
//            return null;
//        }
//        Object obj = session.getAttribute ( "userTel" );
//        return obj != null ? String.valueOf ( obj ) : null;
//    }
//    
//    /**
//     * @Title: getUserFromSession
//     * @Description: 从服务器获取当前登录的用户
//     * @param @param request
//     * @param @return
//     * @return TUser 返回类型
//     * @throws
//     */
//    public static User getUserFromSession ( HttpServletRequest request )
//    {
//        HttpSession session = request.getSession ( false );
//        if ( session == null)
//        {
//            return null;
//        }
//        Object obj = session.getAttribute ( User.SESSION_USER );
//       
//        return ( User ) obj;
//    }
//    
//    /**
//     * @Title: putLogToContext
//     * @Description: 将日志记录到文件中去
//     * @param @param log
//     * @return void 返回类型
//     * @throws
//     */
//    @ SuppressWarnings ( "unchecked" )
//    @ Deprecated
//    public static void putLogToContext ( HttpServletRequest request , String log )
//    {
//        
//        int currentHour = DateUtil.getCurrentHour ( );
//        ServletContext servletContext = request.getServletContext ( );
//        for ( int i = 0 ; i < 24 ; i ++ )
//        {
//            Object obj = servletContext.getAttribute ( String.valueOf ( i ) );
//            ConcurrentLinkedQueue < String > logs = null;
//            // 非当前时刻，将日志记录到文件中去，并值空
//            if ( i != currentHour )
//            {
//                if ( obj != null )
//                {
//                    logs = ( ConcurrentLinkedQueue < String > ) obj;
//                    // 另开一个线程，将数据写入到文件中去
//                    servletContext.setAttribute ( String.valueOf ( i ) , null );
//                }
//            }
//            // 将当前的日志记录到context中去
//            else
//            {
//                synchronized ( logs )
//                {
//                    obj = servletContext.getAttribute ( String.valueOf ( i ) );
//                    if ( obj != null )
//                    {
//                        logs = ( ConcurrentLinkedQueue < String > ) obj;
//                    }
//                    else
//                    {
//                        logs = new ConcurrentLinkedQueue < String > ( );
//                    }
//                    logs.add ( log );
//                    servletContext.setAttribute ( String.valueOf ( i ) , logs );
//                }
//            }
//        }
//    }
//    
//    /**
//     * 根据手机号获取缓存中的验证码
//     * @param userTel
//     * @return
//     */
//    
//    public static String getVerycodeFromSession ( String userTel )
//    {
//		return userTel;
//        
//       /* HttpSession session = request.getSession ( false );
//        if ( session == null )
//        {
//            return null;
//        }
//        Object tokenObj = session.getAttribute ( TUser.VERIFYCODE );
//        Object expirObj = session.getAttribute ( TUser.EXPIR );
//        // session.removeAttribute(TUser.VERIFYCODE);
//        // session.removeAttribute(TUser.EXPIR);
//        if ( tokenObj != null && expirObj != null )
//        {
//            String token = String.valueOf ( tokenObj );
//            long expir = Long.parseLong ( String.valueOf ( expirObj ) );
//            // 验证码未过期
//            if ( DateUtil.subMinute ( expir ) < TUser.LENGTH )
//            {
//                return token;
//            }
//            else
//            {
//                session.removeAttribute ( TUser.VERIFYCODE );
//                session.removeAttribute ( TUser.EXPIR );
//            }
//        }
//        return null;*/
//    }
//    
//    /**
//     * 
//    * <p>Title: getPayPasswordFromSession</p>
//    * <p>Description:从session获取用户支付密码 </p>
//    * @author yangyang
//    * @param request
//    * @return
//     */
//    
//    public static String getPayPasswordFromSession ( HttpServletRequest request )
//    {
//        
//        HttpSession session = request.getSession ( false );
//        if ( session == null )
//        {
//            return null;
//        }
//        Object tokenObj = session.getAttribute ("payPassword");
//        Object expirObj = session.getAttribute ( User.EXPIR );
//        if ( tokenObj != null && expirObj != null )
//        {
//            String payPassword = String.valueOf ( tokenObj );
//            long expir = Long.parseLong ( String.valueOf ( expirObj ) );
//            // 验证码未过期
//            if ( DateUtil.subMinute ( expir ) < User.LENGTH )
//            {
//                return payPassword;
//            }
//            else
//            {
//                session.removeAttribute ("payPassword");
//                session.removeAttribute ( User.EXPIR );
//            }
//        }
//        return null;
//    }
//    
//    /**
//     * 记录验证码输入错误记录
//     * @param request
//     * @return 累计错误次数，0表示已超出，验证码被删除
//     */
//    public static int wrongVerifyCode(HttpServletRequest request){
//    	int i = 0;
//    	HttpSession session = request.getSession ( false );
//        if ( session == null )
//        {
//            return 1;
//        }
//        Object obj = session.getAttribute (TEST_COUNT_TITLE);
//        if(obj==null){
//        	session.setAttribute(TEST_COUNT_TITLE, 1);
//        	return 1;
//        }else{
//        	int times = (Integer) obj;
//        	if(times>=TEST_MAX){
//        		removeVerycodeFromSession(request);
//        		session.removeAttribute (TEST_COUNT_TITLE);
//        		return 0;
//        	}else{
//        		session.setAttribute(TEST_COUNT_TITLE, times+1);
//        		return times+1;
//        	}
//        }
//    }
//    
//    public static void removeVerycodeFromSession ( HttpServletRequest request )
//    {
//        
//        
//        HttpSession session = request.getSession ( false );
//        if ( session == null )
//        {
//            return;
//        }
//        session.removeAttribute ( User.VERIFYCODE );
//        session.removeAttribute ( User.EXPIR );
//    }
//    
//    /**
//     * @Title: setTokenToSession
//     * @Description: 往服务端设置token值
//     * @param @param request
//     * @param @param token
//     * @return void 返回类型
//     * @throws
//     */
//    public static void putVerycodeToSession (String userTel , String token )
//    {
//        
//     /*   HttpSession session = request.getSession ( false );
//        session.removeAttribute (TEST_COUNT_TITLE);
//        session.setAttribute ( TUser.VERIFYCODE , token );
//        session.setAttribute ( TUser.EXPIR , System.currentTimeMillis());*/
//    }
//    
//    
//   
//    public static void putPayPasswordToSession ( HttpServletRequest request , String payPassword )
//    {
//        
//        HttpSession session = request.getSession ( false );
//        session.setAttribute ("payPassword" , payPassword );
//        session.setAttribute ( User.EXPIR , System.currentTimeMillis() );
//    }
//    
//    /**
//     * @Title: putPictureVerycodeToSession
//     * @Description: 往服务端设置pc端图片验证码值
//     * @param @param random 随机数
//     * @param @param code
//     * @return void 返回类型
//     * @throws
//     */
//	public static void putPictureVerycodeToSession(String  random, String code) {
//
//	}
//
//	/**
//	 * @Title: putPictureVerycodeToSession
//	 * @Description: 获取session中存储的pc端图片验证码值
//	 * @param request
//	 * @return
//	 */
//	public static String getPictureVerycodeFromSession(HttpServletRequest request) {
//		
//		HttpSession session = request.getSession(false);
//		if (session == null) {
//			return null;
//		}
//		Object tokenObj = session.getAttribute(User.IMAGECODE);
//		Object expirObj = session.getAttribute(User.IMGEXPIR);
//		if (tokenObj != null && expirObj != null) {
//			String token = String.valueOf(tokenObj);
//			long expir = Long.parseLong(String.valueOf(expirObj));
//			// 验证码未过期
//			if (DateUtil.subMinute(expir) < User.LENGTH) {
//				return token;
//			} else {
//				session.removeAttribute(User.IMAGECODE);
//				session.removeAttribute(User.IMGEXPIR);
//			}
//		}
//		return null;
//	}
//    
//    /**
//     * @Title: getRemoteIP
//     * @Description: 获取到远程客户端的ip
//     * @param @param request
//     * @param @return
//     * @return String 返回类型
//     * @throws
//     */
//    public static String getRemoteIP ( HttpServletRequest request )
//    {
//        
//        //String ip = request.getRemoteHost ( );
//        return getIp(request);
//    }
//    
//	public static String getIp(HttpServletRequest request) {
//		String ip = request.getHeader("X-Forwarded-For");
//		if (StringUtil.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
//			// 多次反向代理后会有多个ip值，第一个ip才是真实ip
//			int index = ip.indexOf(",");
//			if (index != -1) {
//				return ip.substring(0, index);
//			} else {
//				return ip;
//			}
//		}
//		ip = request.getHeader("X-Real-IP");
//		if (StringUtil.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
//			return ip;
//		}
//		return request.getRemoteAddr();
//	}
//
//}
